package com.sg.service.base.framework;

import com.sg.dto.base.framework.req.BatchQueryOrgReq;
import com.sg.dto.base.framework.req.ImplementSpinLockCheckOrgReq;
import com.sg.dto.base.framework.req.QueryOrgDetailReq;
import com.sg.dto.base.framework.req.QueryOrgListReq;
import com.sg.entity.Organization;

import java.util.List;

/**
 * @author ：
 * @version 1.0
 * @date ：
 */
public interface MOrganizationService {
    /**
     * 1-3-12查询组织详情
     */
    Organization queryOrgDetail(QueryOrgDetailReq reqDto);

    /**
     * 1-3-12查询组织列表
     */
    List<Organization> queryOrgList(QueryOrgListReq reqDto);

    /**
     * 1-3-12批量查询组织列表
     */
    List<Organization> batchQueryOrg(BatchQueryOrgReq reqDto);

    /**
     * 1-3-12删除组织
     */
    boolean deleteOrg(String organizationId);

    /**
     * 1-3-12修改组织
     */
    boolean updateOrg(Organization organization);

    /**
     * 1-3-12新增组织
     */
    String addOrg(Organization organization);

    /**
     * 1-3-12执行悬停查组织（悬停）
     */
    Organization implementSpinLockCheckOrg(ImplementSpinLockCheckOrgReq reqDto);

    /**
     * M1执行底层框架公共字段推送内存（特殊方法）
     */
    Organization implementBottomPublicFieldPushMemory();

    /**
     * M1批量查询组织测试
     */
    List<Organization> batchQueryOrgTestData(Organization organization);

    /**
     * M1批量删组织测试
     */
    boolean batchDeleteOrgTestData(List<String> reqDto);
    //
}
